import { BasicFetchResult } from '../../model/baseModel';

/*
 * @Description: 员工信息
 * @Version: 2.0
 * @Autor: 许国辉
 * @Date: 2022-09-17 07:20:32
 * @LastEditors: 许国辉
 * @LastEditTime: 2023-02-17 11:26:42
 */
export interface EmployeeInfoModel {
  //员工ID 唯一标识(作为系统接入登录标识)
  employeeId: string;
  //员工编号(没有员工编号的可以用其唯一项代替)
  employeeNum: string;
  //姓名 格式为张三,ZHANG/SAN,ZHOU/JIE LUN
  name: string;
  //性别 0:男 1:女
  sex: number;
  //根据此标记同步员工状态
  //1:正常 0:冻结
  termination: number;
  //当前员工订票是否需要在系统审批
  //1：需要 0：不需要
  isApp: number;
  //邮件地址
  email: string;
  //部门名称
  deptName: string;
  //部门唯一标识（两方同步部门时规定的唯一标识）,填写了deptId会根据同步部门的唯一标识匹配部门
  deptId: string;
  //成本中心名称
  costName: string;
  //成本中心唯一标识（两方同步成本中心时规定的唯一标识）,填写了 costId 会根据同步成本中心的唯一标识匹配成本中心
  costId: string;
  //角色（级别）名称
  groupName: string;
  //手机号 (只支持中国大陆手机号格式 如186****1854)
  moblie: string;
  //证件姓名 格式为张三,ZHANG/SAN,ZHOU/JIE LUN,若该值为空，且传入了证件编号certNo，那么会以name作为证件姓名
  certName: string;
  //证件号(此处长度为18为系统就默认为身份证)
  certNo: string;
  //用户权限名称（级别名称）
  levelName: string;
  //员工证件信息（当该员工有多个证件时，才使用该参数；若只有一个证件且证件类型是身份证或护照，传入同级的certNo&certName即可，会根据证件号码长度和格式来识别是身份证还是护照）
  // List<PassportVO> passportList:string
  passportList: string;
  //设置该员工为指定部门的审批人（若该员工为多个部门的审批人则传多份数据，当该参数为空或其指定的oa审批部门无效时，则不做同步。若该审批人在指定的部门中已存在且层级或组类不同，则删除原有审批人进行新增）
  // List<ApprovalDepartmentVO> approvalDepartments:string
  // approvalDepartments: string;
  //是否给员工开通登录帐 1-开通 其他-不开通
  //选填（仅用于开通直接登录系统的账号密码，oa跳转对接可忽略此参数）
  isAllowLogin: number;
  //员工开通登录帐号
  //选填（仅用于开通系统的登录账户，oa跳转对接流程可忽略此参数）
  loginUserName: string;
  //员工开通登录帐号的密码
  //选填（仅用于开通系统的登录账户，oa跳转对接流程可忽略此参数）
  loginPassword: string;
  //是否发送登录帐号开通通知（短信、邮件） 1-发送 其他-不发送
  //选填（仅用于开通系统的登录账户，oa跳转对接流程可忽略此参数）
  isSendLoginMsg: number;
  //是否具备审批单扫描权限 0：不具备 1：具备
  isQrCode: number;
  //是否进行了同步 0：未同步 1：已同步
  isSync: number;
}

/**
 * @description: employee interface parameters
 */
export interface EmployeeParams {
  pageNumber: number;
  page: number;
  employeeNum: string;
  employeeName: string;
  employeeMobile: string;
  employeeLevelName: string;
  id: number;
}

/**
 * @description: Request list return value
 */
export type getEmployeeListResultModel = BasicFetchResult<EmployeeInfoModel>;

export const EmployeeInfo: EmployeeInfoModel = {
  //员工ID 唯一标识(作为系统接入登录标识)
  employeeId: '',
  //员工编号(没有员工编号的可以用其唯一项代替)
  employeeNum: '',
  //姓名 格式为张三,ZHANG/SAN,ZHOU/JIE LUN
  name: '',
  //性别 0:男 1:女
  sex: 0,
  //根据此标记同步员工状态
  //1:正常 0:冻结
  termination: 1,
  //当前员工订票是否需要在系统审批
  //1：需要 0：不需要
  isApp: 1,
  //邮件地址
  email: '',
  //部门名称
  deptName: '',
  //部门唯一标识（两方同步部门时规定的唯一标识）,填写了deptId会根据同步部门的唯一标识匹配部门
  deptId: '',
  //成本中心名称
  costName: '',
  //成本中心唯一标识（两方同步成本中心时规定的唯一标识）,填写了 costId 会根据同步成本中心的唯一标识匹配成本中心
  costId: '',
  //角色（级别）名称
  groupName: '基础员工角色',
  //手机号 (只支持中国大陆手机号格式 如186****1854)
  moblie: '',
  //证件姓名 格式为张三,ZHANG/SAN,ZHOU/JIE LUN,若该值为空，且传入了证件编号certNo，那么会以name作为证件姓名
  certName: '',
  //证件号(此处长度为18为系统就默认为身份证)
  certNo: '',
  //用户权限名称（级别名称）
  levelName: '',
  //员工证件信息（当该员工有多个证件时，才使用该参数；若只有一个证件且证件类型是身份证或护照，传入同级的certNo&certName即可，会根据证件号码长度和格式来识别是身份证还是护照）
  // List<PassportVO> passportList:''
  passportList: '',
  //设置该员工为指定部门的审批人（若该员工为多个部门的审批人则传多份数据，当该参数为空或其指定的oa审批部门无效时，则不做同步。若该审批人在指定的部门中已存在且层级或组类不同，则删除原有审批人进行新增）
  // List<ApprovalDepartmentVO> approvalDepartments:''

  //是否给员工开通登录帐 1-开通 其他-不开通
  //选填（仅用于开通直接登录系统的账号密码，oa跳转对接可忽略此参数）
  isAllowLogin: 0,
  //员工开通登录帐号
  //选填（仅用于开通系统的登录账户，oa跳转对接流程可忽略此参数）
  loginUserName: '',
  //员工开通登录帐号的密码
  //选填（仅用于开通系统的登录账户，oa跳转对接流程可忽略此参数）
  loginPassword: '',
  //是否发送登录帐号开通通知（短信、邮件） 1-发送 其他-不发送
  //选填（仅用于开通系统的登录账户，oa跳转对接流程可忽略此参数）
  isSendLoginMsg: 1,
  //是否具备审批单扫描权限 0：不具备 1：具备
  isQrCode: 1,
  //是否进行了同步 0：未同步 1：已同步
  isSync: 0,
};
